<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
      <div>
        <span>姓名:</span>
        <input v-model.trim="name" type="text" />
      </div>
      <div>
        <span>年龄:</span>
        <input v-model.number="age" type="number" />
      </div>
      <div>
        <span>性别:</span>
        <select v-model.trim="gender">
          <option value="男">男</option>
          <option value="女">女</option>
        </select>
      </div>
      <div>
        <button @click="add">添加/修改</button>
      </div>
      <div>
        <table border="1" cellpadding="10" cellspacing="0">
          <tr>
            <th>序号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>操作</th>
          </tr>
          <tr v-for="(item,index) in list">
            <td>{{index + 1}}</td>
            <td>{{item.name}}</td>
            <td>{{item.age}}</td>
            <td>{{item.gender}}</td>
            <td>
              <button @click="del(item.id)">删除</button>
              <button @click="edit(item)">编辑</button>
            </td>
          </tr>
        </table>
      </div>
  </div>
  <script src="../vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        list: [
          {id:1,name:'圣代',age:108,gender:'男'  },
          {id:2,name:'江涛',age:109,gender:'男'  },
          {id:3,name:'露露',age:110,gender:'女'  },
          {id:4,name:'慧娟',age:120,gender:'女'  },
          {id:5,name:'雪晶',age:119,gender:'女'  },
        ],
        name:'',
        age:'',
        gender:'',
        isShow:false,
        id:-1
      },
      methods: {
        add () {
          if (this.name === '')return alert('请输入姓名')
          if (this.age === '')return alert('请输入年龄')
          if (this.gender === '')return alert('请选择性别')

          if (!this.isShow) {
            //增加逻辑
            this.list.push({
              id:Date.now(),
              name:this.name,
              age:this.age,
              gender:this.gender
            })
            this.name = ''
            this.age = ''
            this.gender = ''
          }else {
            //修改逻辑
            this.list.forEach(item => {
              if (item.id === this.id) {
                item.name = this.name
                item.age = this.age
                item.gender = this.gender
                this.id = -1
                this.isShow = false
                this.name = ''
                this.age = ''
                this.gender = ''
              }
            })
          }
        },
        //删除逻辑
        del (id) {
          this.list = this.list.filter(item => item.id !== id)
        },
        //编辑按钮
        edit (item) {
          this.isShow = true
          this.name = item.name
          this.age = item.age
          this.gender = item.gender
          this.id = item.id
        }
      }
    })
  </script>
</body>

</html>